package com.youlu.campus.web.sign.controller;

import com.youlu.campus.base.base.PageQueryRequest;
import com.youlu.campus.web.sign.dto.LiveResponse;
import com.youlu.campus.web.sign.dto.LiveSignRequest;
import com.youlu.campus.web.sign.service.LiveService;
import com.yuelin.infrastructure.quantum.common.QResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

/**
 * 直播分享控制器
 * 处理直播排期列表查询、今日直播打卡判断及直播打卡口令校验等操作
 *
 * @author: YangJ
 * @date: 2020/12/10 15:12
 */
@RestController
public class LiveController {

    @Autowired
    private LiveService liveService;

    /**
     * 直播排期列表查询
     * 首页-直播分享模块使用，仅查询今天及以前的直播信息，支持分页
     * @param request 分页查询请求参数，包含页码、每页条数等
     * @return 直播排期列表数据
     */
    @PostMapping("/mini-app/live/list")
    public QResult liveList(@RequestBody PageQueryRequest request){
        return QResult.success(liveService.liveList(request));
    }

    /**
     * 今日是否有直播打卡判断
     * 首页-今日打卡时使用，判断指定打卡计划今日是否有直播打卡活动
     * @param signPlanId 打卡计划ID
     * @return 若存在今日直播打卡信息则返回详情，否则返回null
     */
    @GetMapping("/mini-app/live/today")
    public QResult signPlanDailyLike(String signPlanId){
        return QResult.success(liveService.queryTodayLive(signPlanId));
    }

    /**
     * 直播打卡-口令校验
     * 验证直播打卡时输入的口令是否正确
     * @param request 直播打卡请求参数，包含口令及相关直播信息
     * @return 校验结果及相关直播信息
     */
    @PostMapping("/mini-app/live/sign/check")
    public QResult liveList(@RequestBody LiveSignRequest request){
        return QResult.success(liveService.checkLieWord(request));
    }
}